all: gl_s gl_p bor_s bor_p mc_s mc_p

gl_s.o: gauss_legendre_sequencial.c
	gcc gauss_legendre_sequencial.c -c -o gl_s.o
gl_p.o: gauss_legendre_paralelo.c
	gcc gauss_legendre_paralelo.c -c -o gl_p.o
bor_s.o: borwein_sequencial.c
	gcc borwein_sequencial.c -c -o bor_s.o
bor_p.o: borwein_paralelo.c
	gcc borwein_paralelo.c -c -o bor_p.o
mc_s.o: monte_carlo_sequencial.c
	gcc monte_carlo_sequencial.c -c -o mc_s.o
mc_p.o: monte_carlo_paralelo.c
	gcc monte_carlo_paralelo.c -c -o mc_p.o

gl_s: gl_s.o
	gcc gl_s.o -o gl_s -lgmp
gl_p: gl_p.o
	gcc gl_p.o -o gl_p -lgmp -pthread
bor_s: bor_s.o
	gcc bor_s.o -o bor_s -lgmp
bor_p: bor_p.o
	gcc bor_p.o -o bor_p -lgmp -pthread
mc_s: mc_s.o
	gcc mc_s.o -o mc_s -lgmp
mc_p: mc_p.o
	gcc mc_p.o -o mc_p -lgmp -pthread

clean:
	rm *.o -f
	rm gl_* -f 
	rm bor_* -f
	rm mc_* -f
	rm pi_*	-f
